package com.jd.finance.core.controller.admin;


import com.jd.finance.core.service.DictionaryService;
import com.jd.finance.core.service.impl.AdminUtilsServiceImpl;
import com.jd.finance.result.BaseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 字典表 前端控制器
 * </p>
 *
 * @author LiQingBo
 * @since 2022-05-20
 */
@Api(tags = "敏感词管理")
@Slf4j
@RestController
@RequestMapping("/admin/core/sensitiveWordCenter")
public class AdminDictionaryController {

    @Autowired
    private DictionaryService dictionaryService;

    @Autowired
    private AdminUtilsServiceImpl adminUtilsService;

    /**
     * 获取所有敏感词
     * @param uid
     * @return
     */
    @ApiOperation("获取所有敏感词")
    @GetMapping("/getAPPAllWord")
    public BaseResult getAPPAllWord(Integer uid) {

        if (uid==null) {
            log.error("管理员id为空");
            return BaseResult.error().message("管理员id为空!");
        }

        if(!adminUtilsService.isInformation(uid)) {
            log.error("该用户非信息管理员身份!");
            return BaseResult.error().message("该用户非信息管理员身份!");
        }
        return dictionaryService.getAPPAllWord(uid);
    }

    /**
     * 添加敏感词
     */
    @ApiOperation("添加敏感词")
    @PostMapping("/insertAPPWord")
    public BaseResult insertAPPWord(Integer uid, String dicText, HttpServletRequest request) {

        /**
         * 判断信息是否为空
         */
        if (dicText=="" || uid==null) {
            log.error("添加敏感词信息为空");
            return BaseResult.error().message("添加敏感词信息为空!");
        }

        /**
         * 判断管理员身份是否为信息管理员
         */
        if(!adminUtilsService.isInformation(uid)) {
            log.error("该用户非信息管理员身份!");
            return BaseResult.error().message("该用户非信息管理员身份!");
        }

        return dictionaryService.insertAPPWord(uid,dicText,request);
    }


    @ApiOperation("删除敏感词")
    @GetMapping("/deleteAPPWord")

    public BaseResult deleteAPPWord(Integer uid,Integer did,HttpServletRequest request) {
        /**
         * 判断信息是否为空
         */
        if (uid==null || did==null) {
            log.error("删除敏感词信息为空");
            return BaseResult.error().message("删除敏感词信息为空!");
        }

        /**
         * 判断管理员身份是否为信息管理员
         */
        if(!adminUtilsService.isInformation(uid)) {
            log.error("该用户非信息管理员身份!");
            return BaseResult.error().message("该用户非信息管理员身份!");
        }
        return dictionaryService.deleteAPPWord(uid,did,request);
    }


}

